<?php
    /**
     * 数据验证类。
     * 内部方法多为静态方法。
     * @author Schelling
     *
     */
    class Data_Validation
    {
        /**
         * 判断$form_vars数组是否每一项都已赋值，主要用于验证表格填写完整。
         * @param unknown $form_vars 表格所项，一般为$_POST
         * @return boolean
         */
        public static function is_filledout($form_vars)
        {
            foreach ($form_vars as $key=>$value)
            {
                if(!isset($key) || $value =='')
                {
                    return false;
                }
            }
            
            return true;
        }
        
        /**
         * email合理性验证。匹配规则：
         *  @前面部分，“[a-z0-9_-\.]+”， 表示包含字母、数字、“_”、“-”、“.”，且至少有其中之一
         *  @后面部分，以“[a-z0-9_-]+”开头，再包含一个以上的“\.[a-z0-9_-]+”
         *  不区分大小写
         *  注意： “-”与需要escape转义，不然会提示waring “preg_match(): Compilation failed: range out of order in character class at offset”
         * @param unknown $email
         * @return boolean
         */
        public static function is_valid_email($email)
        {
            $pattern_email = '/^[a-z0-9_\-\.]+@[a-z0-9_\-]+(\.[a-z0-9_\-]+)+$/i';
            
            if(preg_match($pattern_email, $email))
            {
                return true;
            }
            else 
            {
                return false;
            }
        }
        
        /**
         * 判断字符串$str长度是否在[$minlen, $maxlen]之间。
         * @param unknown $str
         * @param unknown $minlen
         * @param unknown $maxlen
         * @return boolean 
         */
        public static function is_valid_length($str, $minlen, $maxlen)
        {
            if(strlen($str) < $minlen || strlen($str) > $maxlen)
            {
                return false;
            }
            
            return true;
        }
        
        
        
    }
        



?>